#ifndef _CONFIG_H_
#define _CONFIG_H_

#include <string>
#include "stdafx.h"
#include "defines.h"


using namespace std;

class CSeq;

class CConfig
{
public:
	CConfig();
	static CConfig * GetConfig();
	static bool DumpConfig();
	static int GetConfigFromArgs( int argc, _TCHAR* argv[] );
	static void ShowHelp();
	static char * W2C(const wchar_t *pw , char *pc);
	static char * wstr2cstr(const wchar_t *pwstr , char *pcstr, size_t len);


public:
	static string orig_seq_file;
	static string rec_seq_file;
	static string pattern_file;
	static string log_file;

	static CSeq * seq;

	static unsigned int time_slice;		// in seconds

	static int frame_width;
	static int frame_height;
	static int encode_count;

	static bool run_once;
	static bool run_full_pattern;
	static bool use_6tap;
	static bool use_4tap;
	static bool use_dir_inter;
	static bool use_pattern_coff;
	static bool run_pattern_static;
	static bool no_mirror;

	static unsigned int pattern_mask;	// mask of valid bit in patterns
	static char pattern_mask_array[REF_PIXEL_NUMBER];


private:
	static CConfig * m_pConfig;

};


#endif // _CONFIG_H_